home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d20 / fddev202.arc / C.ARC / CTL.H next >
Text File  |  1991-10-01  |  23KB  |  690 lines

  1. /*
  2. **  ctl.h (FrontDoor)
  3. **
  4. **  Copyright 1991 Joaquim H. Homrighausen. All rights reserved.
  5. **
  6. **  SETUP.FD definitions for FrontDoor 2.00+
  7. **
  8. **  Last revision:  91-10-02
  9. **
  10. **  -------------------------------------------------------------------------
  11. **  This information is not necessarily final and is subject to change at any
  12. **  given time without further notice
  13. **  -------------------------------------------------------------------------
  14. */
  15.  
  16. /* Mailer ----------------------------------------------------------------- */
  17.  
  18. /* --- Loglevels */
  19.  
  20. #define LOGFATAL    0x0001                                /* ! Fatal errors */
  21. #define LOGERROR    0x0002                                      /* ? Errors */
  22. #define LOGBRIEF    0x0004                     /* + Major changes in action */
  23. #define LOGACCT     0x0008                      /* $ Accounting information */
  24. #define LOGXFER     0x0010                         /* * Sent/Received files */
  25. #define LOGTRIVIAL  0x0020                     /* - Minor changes in action */
  26. #define LOGXFERMSG  0x0040                           /* % Transfer messages */
  27. #define LOGMODEM    0x0080                  /* = Modem activities/responses */
  28. #define LOGTRX      0x0100                 /* : Session transaction numbers */
  29. #define LOGSESSION  0x0200                  /* ~ Session stuff, SysOp, etc. */
  30. #define LOGRMTAKAS  0x0400                        /* ~ Remote system's AKAs */
  31. #define LOGRMTINFO  0x0800                 /* ~ Remote system's information */
  32. #define LOGUNEXPECT 0x1000                         /* # Unexpected password */
  33. #define LOGDEBUG    0x8000                         /* All loglevels enabled */
  34.  
  35. /* --- Miscellaneous MAILER flags */
  36.  
  37. #define NOUNLISTED      0x00000001L         /* Don't allow unlisted systems */
  38. #define CREATE_BATCH    0x00000002L     /* Create batchfile when BBS caller */
  39. #define TERMONLY        0x00000004L             /* Running as Terminal-Only */
  40. #define DTR_HANGUP      0x00000008L                    /* Use DTR to hangup */
  41. #define DTR_DIAL        0x00000010L          /* Toggle DTR prior to dialing */
  42. #define DTR_BUSY        0x00000020L               /* Use DTR to signal BUSY */
  43. #define MANUAL_ANSWER   0x00000040L                    /* Use manual answer */
  44. #define CONNECT_RESET   0x00000080L         /* Reset modem to connect speed */
  45. #define MODEM_FIXED     0x00000100L     /* Use constant speed against modem */
  46. #define NOMAIL_NOPWD    0x00000200L       /* No mail from unsecured systems */
  47. #define DELAYFIRST      0x00000400L              /* Delay before first call */
  48. #define CLOCK           0x00000800L                        /* Display clock */
  49. #define KILLNULL        0x00001000L         /* Remove messages with no text */
  50. #define MAILONLY        0x00002000L            /* Don't allow human callers */
  51. #define LIMITED_ANSWER  0x00004000L              /* Limited hours to answer */
  52. #define EXIT_NETMAIL    0x00008000L           /* Exit when netmail received */
  53. #define ZONE_ADAPTION   0x00010000L            /* Adopt called/calling zone */
  54. #define PRINTNEWMSGS    0x00020000L              /* Print received messages */
  55. #define NOUNKNOWNPOINTS 0x00040000L         /* Don't accept unlisted points */
  56. #define FORCEDCARRIER   0x00080000L     /* Carrier is forced. Ring required */
  57. #define NULLMODEM       0x00100000L        /* Initiate session when CD high */
  58. #define MAILER43LINES   0x00200000L        /* Use 43/50 line mode in mailer */
  59. #define SWAPTOEMSDISK   0x00400000L    /* Swap file to LIM/EMS/DISK w/shell */
  60. #define MAILEREMSOK     0x00800000L      /* If EMS can be used for swapping */
  61. #define PRESENTAKAS     0x01000000L    /* Present AKAs during EMSI sessions */
  62. #define NOBLINKMAIL     0x02000000L    /* Don't flash the waiting mail sign */
  63. #define EXITONANYFILE   0x04000000L    /* Exit after ANY data has been rcvd */
  64. #define MAILERAUTOLINES 0x08000000L    /* Use whatever screen mode is there */
  65. #define HONOR_RRQ       0x10000000L                            /* Honor RRQ */
  66. #define NO_TIMESTAMP    0x20000000L     /* Don't show timestamp in window-1 */
  67. #define MAILERCUSTOMCRT 0x40000000L             /* User-defined screen size */
  68.  
  69. /* --- Audio flags */
  70.  
  71. #define CLOCKNOISE      0x0001                   /* Tic-tac-tic-tac-tic-tac */
  72. #define INMAILNOISE     0x0002                         /* Unpacked any mail */
  73. #define INCRASHNOISE    0x0004          /* Unpacked crash or immediate mail */
  74. #define INCONNECTNOISE  0x0008              /* Incoming MAIL call (connect) */
  75. #define INCALLERNOISE   0x0010          /* Incoming human caller passed >BBS*/
  76. #define MAILWAITING     0x0020                           /* Mail is waiting */
  77. #define OUTMAILNOISE    0x0040                 /* Sent mail (after session) */
  78. #define OUTCONNECTNOISE 0x0080              /* Outgoing MAIL call (connect) */
  79. #define ERRORNOISE      0x0100                                    /* S.O.S. */
  80.  
  81. /* --- Request types */
  82.  
  83. #define REQALL          0x01                         /* Anybody can request */
  84. #define REQNONE         0x02                          /* No one can request */
  85. #define REQLISTED       0x04                         /* Only listed systems */
  86. #define REQLIMITED      0x08                               /* Limited hours */
  87.  
  88.  
  89. typedef struct
  90.     {
  91.     /* --- The logfile */
  92.  
  93.     char    log[71];
  94.     word    loglevel;                                  /* See --- Loglevels */
  95.  
  96.     /* --- Telephone number manipulation */
  97.  
  98.     char    prefix[31];                                     /* Always added */
  99.     char    hidden[10][31];                 /* Strip these if they are in # */
  100.     char    postfix[31];                                 /* Always appended */
  101.  
  102.     /* --- Miscellaneous flags */
  103.  
  104.     long    flags;                           /* See --- Miscellaneous flags */
  105.     long    flags_reserved;                               /* Reserved flags */
  106.     word    audio;                                   /* See --- Audio flags */
  107.     byte    synchtimer;                       /* Number of seconds for sync */
  108.  
  109.     /* --- Errorlevels */
  110.  
  111.     byte    crashexit;                                         /* Mail exit */
  112.     byte    bbs300;
  113.     byte    bbs1200;
  114.     byte    bbs1275;
  115.     byte    bbs2400;
  116.     byte    bbs4800;
  117.     byte    bbs9600;
  118.     byte    bbs19200;
  119.     byte    bbs38400;
  120.  
  121.     /* --- Modem */
  122.  
  123.     word    modembaud;                             /* 30=300, 24=2400, etc. */
  124.     byte    modemport;                      /* 1-255 (COM1=1, COM2=2, etc.) */
  125.     byte    modemdelay;                   /* 1/10 seconds delay / line sent */
  126.  
  127.     /* --- Messages */
  128.  
  129.     char    b300msg[16];
  130.     char    b1200msg[16];
  131.     char    b1275msg[16];
  132.     char    b2400msg[16];
  133.     char    b4800msg[16];
  134.     char    b9600msg[16];
  135.     char    b19200msg[16];
  136.     char    b38400msg[16];
  137.     char    errormsg[16];
  138.     char    busymsg[16];
  139.     char    carriermsg[16];
  140.     char    okmsg[16];
  141.     char    ringmsg[16];
  142.     char    nodialmsg[16];
  143.     char    noanswmsg[16];
  144.     char    voicemsg[16];
  145.  
  146.     /* --- Commands */
  147.  
  148.     char    escapestr[11];
  149.     char    offhookstr[11];
  150.     char    reconnectstr[11];
  151.     char    init1[50];
  152.     char    init2[50];
  153.     char    init3[50];
  154.     char    resetstr[50];
  155.     char    downstr[50];
  156.     char    hangupstr[11];
  157.     char    dialstr[11];
  158.  
  159.     /* --- Manual answer stuff */
  160.  
  161.     char    oldmodemanswer[11];                         /* Not used anymore */
  162.     byte    answerdelay;
  163.  
  164.     /* --- Limited answer start and end times */
  165.  
  166.     byte    begin_hour;
  167.     byte    begin_minute;
  168.     byte    end_hour;
  169.     byte    end_minute;
  170.  
  171.     /* --- Calling control */
  172.  
  173.     byte    retrybusy;
  174.     byte    retryresend;
  175.     byte    retrydelay;
  176.  
  177.     /* --- File request control */
  178.  
  179.     char    reqlist[71];                   /* List to scan for reqable dirs */
  180.     char    reqalias[71];                                /* Magic filenames */
  181.     char    reqmessage[71];           /* Appended to FAILED REQUEST message */
  182.     byte    reqtype;                                           /* Bit field */
  183.     byte    reqmaxfiles;            /* Max number of files to send on 1 req */
  184.     word    reqmaxtime;                /* Maximum number of minutes for req */
  185.     word    reqmaxsize;                     /* Maximum size (in KB) for req */
  186.     word    reqminbaud;                         /* Minimum baudrate for req */
  187.     byte    reqstarthr;             /* Start time for file requests, can be */
  188.     byte    reqstartmin;               /* - combined with the reqdays field */
  189.     byte    reqendhr;
  190.     byte    reqendmin;              
  191.     byte    reqdays;                /* 7 6 5 4 3 2 1        0x80==All days
  192.                                        _ _ _ _ _ _ _
  193.                                        : : : : : : :
  194.                                        : : : : : : +--- Saturday
  195.                                        : : : : : +----- Friday
  196.                                        : : : : +------- Thursday
  197.                                        : : : +--------- Wednesday
  198.                                        : : +----------- Tuesday
  199.                                        : +------------- Monday
  200.                                        +--------------- Sunday              */
  201.  
  202.     /* --- File to send when human callers are let thru */
  203.  
  204.     char    bbsname[11];
  205.     char    beforebbsbanner[71];
  206.  
  207.     /* Function keys from mailer menu */
  208.     /* --- F1-F12, Shift F1-F12       */
  209.  
  210.     struct
  211.         {
  212.         char    cmd[61];
  213.         char    title[26];
  214.         byte    behavior;                    /* 1-Pause, 2-Process msg base */
  215.         }
  216.     key[24];
  217.  
  218.     /* --- Mailer colors
  219.  
  220.     header
  221.     highlight
  222.     clock
  223.     data_entry
  224.     error
  225.     normal_text
  226.     frame
  227.     window_text
  228.     window_frame
  229.     window_select
  230.     window_highlight */
  231.  
  232.     byte    color[11];
  233.  
  234.     /* --- Number of days to keep entries in history files */
  235.  
  236.     byte    keep_history;
  237.  
  238.     /* --- FDServer password, if none given, server is INactive */
  239.  
  240.     char    slavepwd[21];
  241.  
  242.     /* --- File displayed to users when system is in event for no callers */
  243.  
  244.     char    ineventfile[71];
  245.  
  246.     /* --- File displayed when human callers are seen on mail-only system */
  247.  
  248.     char    mailonlyfile[71];
  249.  
  250.     /* --- External programs to run on certain "wake-up" strings */
  251.  
  252.     struct
  253.         {
  254.         char    wakeupstr[40];
  255.         byte    errorlevel;
  256.         }
  257.         externmail[10];
  258.  
  259.     /* RESERVED FIELD */
  260.  
  261.     /* --- Limited audio start and end times. If the below four bytes
  262.       are all zero (0), audio is enabled all the time */
  263.  
  264.     byte    audio_begin_hour;
  265.     byte    audio_begin_minute;
  266.     byte    audio_end_hour;
  267.     byte    audio_end_minute;
  268.  
  269.     /* --- Minimum cost to process undialable */
  270.  
  271.     word        min_undial_cost;
  272.  
  273.     /* --- Carrier detect mask (commercial version), default=128 */
  274.  
  275.     byte        CDMASK;
  276.  
  277.     /* --- FDCD buffer sizes (commercial version) */
  278.  
  279.     word        FOSSIL_OUTBS,
  280.                 FOSSIL_INBS;
  281.  
  282.     /* --- List to scan for SECURE sessions during file requests */
  283.  
  284.     char    reqseclist[71];
  285.  
  286.     /* --- Extended baud rate exits */
  287.  
  288.     byte    bbs7200;
  289.     byte    bbs12000;
  290.     byte    bbs14400;
  291.  
  292.     /* --- Custom screen size parameters to INT 10H (commercial version) */
  293.  
  294.     word    SETcustomcrt_AX,
  295.             SETcustomcrt_BX,
  296.             SETcustomcrt_CX,
  297.             SETcustomcrt_DX;
  298.  
  299.     word    RESETcustomcrt_AX,
  300.             RESETcustomcrt_BX,
  301.             RESETcustomcrt_CX,
  302.             RESETcustomcrt_DX;
  303.  
  304.     /* --- Alias List to scan for SECURE sessions */
  305.  
  306.     char    reqsecalias[71];
  307.  
  308.     /* --- Command string to force modem to answer */
  309.  
  310.     char    modemanswer[41];
  311.  
  312.     char  RESERVERAT[811];
  313.     } 
  314.     _mailer;
  315.  
  316.  
  317. /* Editor ----------------------------------------------------------------- */
  318.  
  319. #define EDITOR43LINES   0x00000001L                  /* Use 43/50-line mode */
  320. #define SHOWHARDCRS     0x00000002L     /* Display paragraph (hard CR) char */
  321. #define EDITORSWAP      0x00000004L    /* Swap file to LIM/EMS/DISK w/shell */
  322. #define EDITOREMSOK     0x00000008L    /* Whether or not EMS should be used */
  323. #define EDITORAUTOLINES 0x00000010L    /* Use whatever screen mode is there */
  324. #define HONOR_CFM       0x00000020L                            /* Honor CFM */
  325. #define EDITORCUSTOMCRT 0x00000040L             /* User-defined screen size */
  326. #define RKILL_NEVER_E   0x00000080L       /* Never ask "Delete Original?"-E */
  327. #define RKILL_NEVER_L   0x00000100L       /* Never ask "Delete Original?"-L */
  328. #define RKILL_NEVER_N   0x00000200L       /* Never ask "Delete Original?"-N */
  329. #define USEZONEGATE_YES 0x00000400L           /* Always use zone gate if OK */
  330. #define USEZONEGATE_NO  0x00000800L      /* Never use zone gate, even if OK */
  331.  
  332. /* --- Netmail folder behavior */
  333.  
  334. #define RESTRICTED      0x00000001L
  335. #define EXPORTOK        0x00000004L
  336. #define USEXLATTABLES   0x00000008L
  337. #define EDREADONLY      0x00000020L
  338.  
  339. typedef struct
  340.     {
  341.     /* --- Macro keys */
  342.     /* F1-F12, Shift F1-F12 */
  343.  
  344.     char    macrokey[24][61];
  345.  
  346.     /* --- Margin, default==60 */
  347.  
  348.     byte    margin;
  349.  
  350.     /* --- Default message status */
  351.  
  352.     word    msgbits;
  353.  
  354.     /* --- Miscellaneous settings */
  355.  
  356.     long    flags;
  357.  
  358.     /* --- Origin lines */
  359.  
  360.     char    origin[20][61];
  361.  
  362.     /* --- Editor colors
  363.         top_line
  364.         status_line
  365.         error
  366.         text
  367.         text_quotes
  368.         text_reverse
  369.         text_hardCRs
  370.         header
  371.         header_data
  372.         header_data_highlight
  373.         data_entry
  374.         window_frame
  375.         window_text
  376.         window_select
  377.         window_highlight */
  378.  
  379.     byte    color[15];
  380.  
  381.     /* --- Netmail folder flags */
  382.  
  383.     long    netfolderflags;
  384.  
  385.     /* --- Translation tables IN/OUT */
  386.  
  387.     byte    translate_in[256];
  388.     byte    translate_out[256];
  389.  
  390.     /* --- Where Hudson-style message base files are */
  391.  
  392.     char    qbase[71];
  393.  
  394.     /* --- Custom screen size parameters to INT 10H (commercial version) */
  395.  
  396.     word    SETcustomcrt_AX,
  397.             SETcustomcrt_BX,
  398.             SETcustomcrt_CX,
  399.             SETcustomcrt_DX;
  400.  
  401.     word    RESETcustomcrt_AX,
  402.             RESETcustomcrt_BX,
  403.             RESETcustomcrt_CX,
  404.             RESETcustomcrt_DX;
  405.  
  406.     /* --- RESERVED */
  407.  
  408.     char    RESERVERAT[1008];
  409.     } 
  410.     _editor;
  411.  
  412.  
  413. /* Shared data ------------------------------------------------------------- */
  414.  
  415. #define FASTKEY         0x00000001L
  416. #define FLICKER         0x00000002L
  417. #define BLACKOUT        0x00000004L
  418. #define HAVEEXTKBD      0x00000008L           /* Use extended INT 16H calls */
  419. #define FORCE24HOUR     0x00000010L            /* Force 24-hour time format */
  420.  
  421. #define SUPERUSER       0x00000001L                           /* User flags */
  422. #define ADMINUSER       0x00000002L
  423. #define USER            0x00000004L
  424. #define BYPASSRO        0x00010000L
  425. #define BYPASSEXP       0x00020000L
  426.  
  427. #define PROTECT_MEXIT   0x00000001L      /* Protect Alt-Q            Mailer */
  428. #define PROTECT_MSHELL  0x00000002L      /* Protect Alt-Z            Mailer */
  429. #define PROTECT_MKEYS   0x00000004L      /* Protect function keys    Mailer */
  430. #define PROTECT_MFREQ   0x00000008L      /* Protect file requests    Mailer */
  431. #define PROTECT_MXMIT   0x00000010L      /* Protect transmit         Mailer */
  432. #define PROTECT_MSEND   0x00000020L      /* Protect send mail        Mailer */
  433. #define PROTECT_MPOLL   0x00000040L      /* Protect poll             Mailer */
  434. #define PROTECT_MNCOMP  0x00000080L      /* Protect FDNC             Mailer */
  435. #define PROTECT_MQUEUE  0x00000100L      /* Protect mail queue       Mailer */
  436. #define PROTECT_MPRN    0x00000200L      /* Protect printer toggle   Mailer */
  437.  
  438. /*
  439. **  Domain structure
  440. */
  441. typedef struct
  442.     {
  443.     word    zone,                                        /* Zone for domain */
  444.             reserved;
  445.     char    name[28];                                     /* Name of domain */
  446.     }
  447.     _DOMAIN;
  448.  
  449. /*
  450. **  AKA matching structure
  451. */
  452. typedef struct
  453.     {
  454.     word    zone,                                          /* Zone to match */
  455.             net,                                            /* Net to match */
  456.             akanum;                                           /* AKA to use */
  457.     }
  458.     _ZMATCH;
  459.  
  460. /*
  461. **  Shared information structure
  462. */
  463. typedef struct
  464.     {
  465.     char    systempath[71];
  466.     char    mailpath[71];
  467.     char    swap_path[71];
  468.     char    rescanpath[71];                           /* Commercial version */
  469.     char    RESERVED_path_2[71];
  470.     char    infilepath[71];
  471.     char    packetpath[71];
  472.     char    nodelistpath[71];
  473.  
  474.     word    countrycode;
  475.  
  476.     struct
  477.         {
  478.         word    zone;
  479.         word    net;
  480.         word    node;
  481.         word    point;
  482.         }
  483.     aka[11];
  484.  
  485.     /* --- Timeout value for screen blanker in SECONDS (0-255) */
  486.  
  487.     long    flags;
  488.     byte    blackout_time;
  489.  
  490.     /* --- User record */
  491.  
  492.     struct
  493.         {
  494.         char    name[37];
  495.         long    pwdcrc;              /* CRC-32 of user password, -1L No pwd */
  496.         dword   flags;
  497.         }
  498.     user[10];
  499.  
  500.     /* --- Protection of exits (commercial version) */
  501.  
  502.     dword   exitpwdcrc;              /* Password for DOS shell, exits, etc. */
  503.     dword   exitflags;                   /* Which flags should be protected */
  504.  
  505.     /* --- Zone match set-up */
  506.  
  507.     _ZMATCH     zmatch[20];
  508.  
  509.     /* --- "Domain" set-up */
  510.  
  511.     _DOMAIN     domain[20];
  512.  
  513.     /* --- System information */
  514.  
  515.     struct
  516.         {                       
  517.         char    name[50],                                   /* Name of site */
  518.                 location[40],                           /* Location of site */
  519.                 phone[26];               /* Phone number or '-Unpublished-' */
  520.         dword   baud;                             /* Baud rate (300-115200) */
  521.         char    flags[50];                      /* Capability flags of site */
  522.         }
  523.     siteinfo;
  524.  
  525.     /* --- Reserved */
  526.  
  527.     char    RESERVED[86];
  528.     } 
  529.     _shared;
  530.  
  531.  
  532. /* Terminal --------------------------------------------------------------- */
  533.  
  534. #define CONNECT_NOISE   0x00000001L
  535. #define TRANSFER_NOISE  0x00000002L
  536. #define USE_TRANSLATE   0x00000004L
  537. #define USE_43LINES     0x00000008L
  538. #define AUTOZMODEM      0x00000010L
  539. #define NOWRAPAROUND    0x00000020L
  540. #define LOCALECHO       0x00000040L
  541. #define NOAVATAR        0x00000080L
  542. #define USE_AUTOLINES   0x00000100L
  543. #define NOCLRONFF       0x00000200L       /*Don't clear screen on form feeds*/
  544. #define IEMSIACTIVE     0x00000400L               /*Interactive EMSI Support*/
  545. #define TERMCUSTOMCRT   0x00000800L               /*User-defined screen size*/
  546. #define TERMLOG         0x00001000L                    /*Logging in Terminal*/
  547.  
  548. typedef struct
  549.     {
  550.     /* --- Init string */
  551.  
  552.     char    initstring[41];
  553.  
  554.     /* --- Max memory to use for buffer (in K) */
  555.  
  556.     word    scrollsize;
  557.  
  558.     /* --- 0=TTY, 1=ANSI, 2=VT52, 3=VT100 */
  559.  
  560.     byte    emulation;
  561.  
  562.     /* --- Index in protocol list */
  563.  
  564.     byte    protocol;
  565.  
  566.     /* --- Shift F1-F12 macro settings */
  567.  
  568.     char    shiftkey[12][31];
  569.  
  570.     /* --- Ctrl F1-F12 macro settings */
  571.  
  572.     char    ctrlkey[12][31];
  573.  
  574.     /* --- Default download path */
  575.  
  576.     char    downloadpath[60];
  577.  
  578.     /* --- Default upload path */
  579.  
  580.     char    uploadpath[60];
  581.  
  582.     /* --- Translation table - modem->screen */
  583.  
  584.     byte    translate_in[256];
  585.  
  586.     /* --- Translation table - screen->modem */
  587.  
  588.     byte    translate_out[256];
  589.  
  590.     /* --- Seconds to wait before next dial.. */
  591.  
  592.     byte    retrywait;
  593.  
  594.     /* --- Behavior, sounds, flashes.. etc. */
  595.  
  596.     dword   flags;
  597.  
  598.     /* --- CRC-32 of password to enter PhoneDir */
  599.  
  600.     dword   directorypwd;
  601.  
  602.     /* --- Invoked with Alt-I */
  603.  
  604.     char    editor[60];
  605.  
  606.     /* --- Default profile. See TERMINAL.H */
  607.  
  608.     char    profile[94];
  609.  
  610.     /* --- Custom screen size params to INT 10H (commercial version) */ 
  611.  
  612.     word    SETcustomcrt_AX,
  613.             SETcustomcrt_BX,
  614.             SETcustomcrt_CX,
  615.             SETcustomcrt_DX;
  616.  
  617.     word    RESETcustomcrt_AX,
  618.             RESETcustomcrt_BX,
  619.             RESETcustomcrt_CX,
  620.             RESETcustomcrt_DX;
  621.  
  622.     /* --- Reserved */
  623.  
  624.     char    RESERVERAT[854];
  625.     } 
  626.     _terminal;
  627.  
  628.  
  629. /* Printer (commercial version) ------------------------------------------- */
  630.  
  631. #define PAGE_FORMAT   0x00000001L
  632. #define PAGE_FFEED    0x00000002L
  633. #define EJECT         0x00000004L
  634. #define MANUAL_PAPER  0x00000008L
  635. #define HIDE_KLUDGE   0x00000010L
  636. #define CONTINOUS     0x00000020L
  637.  
  638. typedef struct
  639.     {
  640.     char    port;                 /* 0 LPT1, 1 LPT2, 2 LPT3, 3 COM1, 4 COM2 */
  641.     char    baud;                         /* 0 9600, 1 4800, 2 2400, 3 1200 */
  642.     byte    stopbits;                                 /* 0x00 - 1, 0x01 - 2 */
  643.     byte    wordlength;                               /* 0x00 - 7, 0x01 - 8 */
  644.     byte    parity;                 /* 0x00 - Even, 0x01 - Odd, 0x02 - None */
  645.     byte    pagelen;
  646.     long    behavior;
  647.     char    init[71];
  648.     char    reset[71];
  649.     char    bold_on[31];
  650.     char    bold_off[31];
  651.     char    under_on[31];
  652.     char    under_off[31];
  653.     char    italic_on[31];
  654.     char    italic_off[31];
  655.     byte    pagewidth;                        /* Width in columns of a page */
  656.     byte    leftmargin;        /* Left margin, ie. start printing at column */
  657.     byte    footer;                    /* Footer margin, ie. leave nn lines */
  658.     byte    header;                     /* Header margin, ie. skip nn lines */
  659.     byte    translate_out[256];        /* Translation table - disk->printer */
  660.     char    pr2RESERVED[100];
  661.     } 
  662.     _printer;
  663.  
  664.  
  665. /*****************************************************************************
  666. **                                                                          **
  667. ** Don't use ANY of the data in the file if the CRC values are NOT correct. **
  668. **                                                                          **
  669. ** Check the fingerprint[] field before assuming 1.99b and higher. Your     **
  670. ** software should also check the sysrev field to make sure it's compatible **
  671. ** with the data listed in SETUP.FD                                         **
  672. **                                                                          **
  673. *****************************************************************************/
  674. #define FD_THISREV 0x0100
  675.  
  676. struct _ctl
  677.     {
  678.     char        fingerprint[5];                 /* Must contain "JoHo<NUL>" */
  679.     word        sysrev;                       /* Must contain THISREV above */
  680.     dword       ctlcrc;      /* CRC-32 of struct excluding the 1st 11 bytes */
  681.     _mailer     m;
  682.     _editor     e;
  683.     _shared     s;
  684.     _terminal   t;
  685.     _printer    p;
  686.     dword       ctlcrc2;                         /* CRC-32 of all the above */
  687.     };
  688.  
  689. /* end of file "ctl.h" */
  690.